package it.banca.terra.interfaces;

import it.banca.terra.beans.Conto;

import java.util.List;

/**
 * Interfaccia cliente della banca.
 * @author Gruppo Terra
 */
public interface ICliente {
	/** 
	 * Metodo che restituisce il nome del cliente.
	 * @return {@link String}	Nome del cliente.
	 */ 
	public String getNome();

	/** 
	 * Metodo che setta il nome del cliente.
	 * @param nome	Nome del cliente.
	 */ 
	public void setNome(String nome);
	
	/** 
	 * Metodo che restituisce il cognome del cliente.
	 * @return {@link String}	Cognome del cliente.
	 */ 
	public String getCognome();

	/** 
	 * Metodo che setta il cognome del cliente.
	 * @param cognome	Cognome del cliente.
	 */ 
	public void setCognome(String cognome);

	/** 
	 * Metodo che restituisce il codice fiscale del cliente.
	 * @return {@link String}	Codice fiscale del cliente.
	 */ 
	public String getCodFiscale();

	/** 
	 * Metodo che setta il codice fiscale del cliente.
	 * @param codFiscale	Codice fiscale del cliente.
	 */ 
	public void setCodFiscale(String codFiscale);

	/** 
	 * Metodo che restituisce il numero del cliente.
	 * @return {@link Integer}	Numero del cliente.
	 */
	int getNumCliente();

	/** 
	 * Metodo che setta il numero del cliente.
	 * @param numCliente	Numero del cliente.
	 */
	void setNumCliente(int numCliente);
	
	/** 
	 * Metodo che restituisce la lista dei conti associati al cliente.
	 * @return {@link List}	Lista dei conti del cliente.
	 */
	List<Conto> getConti();

	/** 
	 * Metodo che setta la lista dei conti associati al cliente.
	 * @param conti		Lista dei conti da settare per il cliente.
	 */
	void setConti(List<Conto> conti);
}